home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
zugabe
/
va45
/
visual45
/
library
/
extend
/
rs232.s
< prev
next >
Wrap
Text File
|
1998-05-16
|
2KB
|
105 lines
*--------------------------------------------------------------------------*
ifd LIB_RS232
GWVA_RS232_SEND_STRING_WITH_TIMEOUT: ; a0=buffer,d0.l=length,d1.w=port,d2.l=timeout in 1/200 s
tst.l d0
ble .nothing_to_send
clr.l GWVA_OLD_200HZ_COUNTER
move d1,d3
cmp.w #3,d1
bne.s .paspatch
moveq #4,d3
.paspatch:
.send_next_bytes:
save.l d0-d3/a0
move d3,-(sp) ; ikbd <-> midi
appel bios,8,4
tst d0
bne.s .buffempty
bsr GWVA_GET_200HZ_DELAY_SINCE_LAST_CALL
move.l d0,d4
load.l d0-d3/a0
cmp.l d2,d4
blt.s .send_next_bytes
moveq #GWVA_ERROR_GENERIC,d7
rts
.buffempty: load.l d0-d3/a0
move.b (a0)+,d4
subq.l #1,d0
bmi.s .fini
save.l d0-d3/a0
move.w d4,-(sp)
move.w d1,-(sp)
appel bios,3,6
load.l d0-d3/a0
bra.s .send_next_bytes
.nothing_to_send:
.fini:
clr d7
rts
GWVA_RS232_SEND_STRING_WITHOUT_CONTROL: ; a0=buffer,d0.l=length,d1.w=port
move.b (a0)+,d4
subq.l #1,d0
bmi.s .fini
save.l d0-d1/a0
move.w d4,-(sp)
move.w d1,-(sp)
appel bios,3,6
load.l d0-d1/a0
bra.s RS232_SEND_STRING_WITHOUT_CONTROL
.fini:
rts
GWVA_RS232_TEST_IF_CHAR_PRESENT: ; d0.w=port sortie d7=-1 : non
move.w d0,-(sp)
appel bios,1,4 ; -1:1 char present
moveq #-1,d7
sub d0,d7
rts
GWVA_RS232_GET_AVAILABLE_CHARS: ; a0=buffer,d0.l=max store length,d1.w=port =>d0.l=nb capturés
clr.l d2
.get_all: subq.l #1,d0
bmi.s .fin_capture2
save.l d0-d2/a0
move d1,-(sp)
appel bios,1,4 ; bconstat
tst d0
beq.s .fin_capture1
move 4+2(sp),-(sp) ; ruse : ptr d0 d1 d2 a0
appel bios,2,4 ; bconin
move d0,d3
load.l d0-d2/a0
move.b d3,(a0)+
addq.l #1,d2
bra.s .get_all
.fin_capture1:
load.l d0-d2/a0
.fin_capture2:
move.l d2,d0
rts
endc ; ifd LIB_RS232